// The position in the array is the (checksum) value
export const SYMBOLS = [
	'0', '1', '2', '3',
	'4', '5', '6', '7',
	'8', '9', 'A', 'B',
	'C', 'D', 'E', 'F',
	'G', 'H', 'I', 'J',
	'K', 'L', 'M', 'N',
	'O', 'P', 'Q', 'R',
	'S', 'T', 'U', 'V',
	'W', 'X', 'Y', 'Z',
	'-', '.', ' ', '$',
	'/', '+', '%',
	// Only used for csum and multi-symbols character encodings
	'($)', '(%)', '(/)', '(+)',
	// Start/Stop
	'\xff',
];

// Order matches SYMBOLS array
export const BINARIES = [
	'100010100', '101001000', '101000100', '101000010',
	'100101000', '100100100', '100100010', '101010000',
	'100010010', '100001010', '110101000', '110100100',
	'110100010', '110010100', '110010010', '110001010',
	'101101000', '101100100', '101100010', '100110100',
	'100011010', '101011000', '101001100', '101000110',
	'100101100', '100010110', '110110100', '110110010',
	'110101100', '110100110', '110010110', '110011010',
	'101101100', '101100110', '100110110', '100111010',
	'100101110', '111010100', '111010010', '111001010',
	'101101110', '101110110', '110101110', '100100110',
	'111011010', '111010110', '100110010', '101011110',
];

// Multi-symbol characters (Full ASCII Code 93)
export const MULTI_SYMBOLS = {
	'\x00': ['(%)', 'U'],
	'\x01': ['($)', 'A'],
	'\x02': ['($)', 'B'],
	'\x03': ['($)', 'C'],
	'\x04': ['($)', 'D'],
	'\x05': ['($)', 'E'],
	'\x06': ['($)', 'F'],
	'\x07': ['($)', 'G'],
	'\x08': ['($)', 'H'],
	'\x09': ['($)', 'I'],
	'\x0a': ['($)', 'J'],
	'\x0b': ['($)', 'K'],
	'\x0c': ['($)', 'L'],
	'\x0d': ['($)', 'M'],
	'\x0e': ['($)', 'N'],
	'\x0f': ['($)', 'O'],
	'\x10': ['($)', 'P'],
	'\x11': ['($)', 'Q'],
	'\x12': ['($)', 'R'],
	'\x13': ['($)', 'S'],
	'\x14': ['($)', 'T'],
	'\x15': ['($)', 'U'],
	'\x16': ['($)', 'V'],
	'\x17': ['($)', 'W'],
	'\x18': ['($)', 'X'],
	'\x19': ['($)', 'Y'],
	'\x1a': ['($)', 'Z'],
	'\x1b': ['(%)', 'A'],
	'\x1c': ['(%)', 'B'],
	'\x1d': ['(%)', 'C'],
	'\x1e': ['(%)', 'D'],
	'\x1f': ['(%)', 'E'],
	'!':    ['(/)', 'A'],
	'"':    ['(/)', 'B'],
	'#':    ['(/)', 'C'],
	'&':    ['(/)', 'F'],
	'\'':   ['(/)', 'G'],
	'(':    ['(/)', 'H'],
	')':    ['(/)', 'I'],
	'*':    ['(/)', 'J'],
	',':    ['(/)', 'L'],
	':':    ['(/)', 'Z'],
	';':    ['(%)', 'F'],
	'<':    ['(%)', 'G'],
	'=':    ['(%)', 'H'],
	'>':    ['(%)', 'I'],
	'?':    ['(%)', 'J'],
	'@':    ['(%)', 'V'],
	'[':    ['(%)', 'K'],
	'\\':   ['(%)', 'L'],
	']':    ['(%)', 'M'],
	'^':    ['(%)', 'N'],
	'_':    ['(%)', 'O'],
	'`':    ['(%)', 'W'],
	'a':    ['(+)', 'A'],
	'b':    ['(+)', 'B'],
	'c':    ['(+)', 'C'],
	'd':    ['(+)', 'D'],
	'e':    ['(+)', 'E'],
	'f':    ['(+)', 'F'],
	'g':    ['(+)', 'G'],
	'h':    ['(+)', 'H'],
	'i':    ['(+)', 'I'],
	'j':    ['(+)', 'J'],
	'k':    ['(+)', 'K'],
	'l':    ['(+)', 'L'],
	'm':    ['(+)', 'M'],
	'n':    ['(+)', 'N'],
	'o':    ['(+)', 'O'],
	'p':    ['(+)', 'P'],
	'q':    ['(+)', 'Q'],
	'r':    ['(+)', 'R'],
	's':    ['(+)', 'S'],
	't':    ['(+)', 'T'],
	'u':    ['(+)', 'U'],
	'v':    ['(+)', 'V'],
	'w':    ['(+)', 'W'],
	'x':    ['(+)', 'X'],
	'y':    ['(+)', 'Y'],
	'z':    ['(+)', 'Z'],
	'{':    ['(%)', 'P'],
	'|':    ['(%)', 'Q'],
	'}':    ['(%)', 'R'],
	'~':    ['(%)', 'S'],
	'\x7f': ['(%)', 'T'],
};
